home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (PO) / Nibble Volume 12, No. 10 (1991-10)(MindCraft Publishing)(Side A).zip / Nibble Volume 12, No. 10 (1991-10)(MindCraft Publishing)(Side A).po / PS.CONVERT.BAS < prev    next >
BASIC Source File  |  1996-12-24  |  7KB  |  124 lines

  1. 10  REM   *************************
  2. 12  REM   * PRINT SHOP CONVERTER  *
  3. 14  REM   * BY B.R. CLEMESHA      *
  4. 16  REM   * COPYRIGHT (C) 1991    *
  5. 18  REM   * MINDCRAFT PUBL. CORP. *
  6. 20  REM   * LINCOLN, MA 01773     *
  7. 30  REM   *************************
  8. 40  LOMEM: 24576: DIM A$(61),B$(61),AA$(61)
  9. 50 D$ =  CHR$(4):G$ =  CHR$(7):H$ =  CHR$(8):J$ =  CHR$(10):K$ =  CHR$(11):M$ =  CHR$(13):U$ =  CHR$(21):ESC$ =  CHR$(27):SD$ = ",S6,D1":DD$ = ",S6,D2":DL$ = "NO ":DC$ = DL$
  10. 60  REM     * CTRL-D: BELL: BACK-SPACE: DOWN: UP: RETURN: RIGHT: ESCAPE: SOURCE DRIVE: DESTINATION DRIVE: DELETE AND PAUSE FLAGS
  11. 70  FOR N = 1 TO 18:H18$ = H18$ +H$: NEXT N: REM    * 18 BACKSPACES
  12. 80  PRINT D$"BLOAD PS.CONVERT.0":CNVRT = 7168: ONERR  GOTO 1150: REM     * LOAD ML PROGRAM
  13. 90  FOR N = 1 TO 8: READ MENU$(N): NEXT N:N = 1: GOSUB 310: REM     * READ MENU ITEMS
  14. 100  REM     * PRINT MENU SCREEN
  15. 110  PRINT D$"PR#3"M$: HOME :LM = 35:WI = 2: GOSUB 1080: PRINT 
  16. 120  FOR N1 = 1 TO 23: PRINT "|": NEXT :LM = 0:WI = 34: GOSUB 1080: VTAB 1: PRINT "        PS.CONVERT"M$"   Print Shop Clip Converter"M$M$"Copyright 1991, MindCraft Publ.": FOR N1 = 1 TO 34: PRINT "_";: NEXT 
  17. 130  TEXT : GOSUB 1070: GOSUB 330: VTAB 6: FOR N1 = 1 TO 8: HTAB 4: PRINT MENU$(N1) +M$: NEXT N1: GOTO 190
  18. 140  REM     * MENU ROUTINE
  19. 150 M =  VAL(KE$): IF M >0  AND M <9  THEN N = M: GOTO 190
  20. 160  IF KE$ = K$  OR KE$ = U$  THEN N = N -1: IF N <1  THEN N = 8
  21. 170  IF KE$ = J$  THEN N = N +1: IF N >8  THEN N = 1
  22. 180  IF KE$ = M$  THEN  ON N GOTO 210,220,350,360,780,970,990,1100
  23. 190  GOSUB 330: GOSUB 1070: HTAB 4: VTAB (4 +2 *N): INVERSE : PRINT MENU$(N);: NORMAL : GET KE$: HTAB 4: PRINT MENU$(N);: GOTO 150
  24. 200  REM     * GET SLOT AND DRIVE NUMBERS
  25. 210  GOSUB 230:SD$ = TEMP$: GOSUB 310: GOTO 190: REM    * SOURCE DRIVE
  26. 220  GOSUB 230:DD$ = TEMP$: GOSUB 310: GOTO 190: REM    * DESTINATION DRIVE
  27. 230  GOSUB 330: PRINT " SLOT #: ";: GET KE$:: IF KE$ <"8"  AND KE$ >"0"  THEN TEMP$ = ",S" +KE$: GOTO 260
  28. 240  IF KE$ = ESC$  THEN 290
  29. 250  PRINT G$: GOTO 230
  30. 260  GOSUB 330: PRINT " DRIVE 1/2 ? ";: GET KE$: IF KE$ <"3"  AND KE$ >"0"  THEN TEMP$ = TEMP$ +",D" +KE$: GOTO 290: REM     * SET SLOT AND DRIVE
  31. 270  IF KE$ = ESC$  THEN 290
  32. 280  PRINT G$: GOTO 260
  33. 290  GOSUB 330: RETURN 
  34. 300  REM     * APPEND SLOT AND DRIVE NUMBERS TO MENU ITEMS
  35. 310 MENU$(1) =  LEFT$(MENU$(1),16) +SD$:MENU$(2) =  LEFT$(MENU$(2),21) +DD$: RETURN 
  36. 320  REM     * CLEAR INPUT LINE
  37. 330  VTAB 21: PRINT : PRINT  SPC( 34): VTAB 21: PRINT : RETURN 
  38. 340  REM    * FILE MENU/CATALOG ROUTINES
  39. 350  PRINT D$"PREFIX"DD$: GOTO 370: REM    SET * DESTINATION PREFIX
  40. 360  PRINT D$"PREFIX"SD$: REM    * SET SOURCE PREFIX
  41. 370  GOSUB 1050:WI = 79: GOSUB 1080: HOME : REM    * CLEAR SCREEN
  42. 380  PRINT M$"PLEASE WAIT":ER = 0:NF = 1
  43. 390  PRINT D$"PREFIX": INPUT P$
  44. 400  PRINT D$"OPEN"P$",TDIR": PRINT D$"READ"P$: REM    * OPEN DIRECTORY
  45. 410 BLOCKS =  PEEK(48825) +256 * PEEK(48826) - PEEK(48828) -256 * PEEK(48829): INPUT C$,C$,C$: IF N = 4  THEN 470:: REM    * FREE SPACE
  46. 430  REM    * READ DIRECTORY OF DESTINATION DISC
  47. 440  INPUT AA$(NF): IF AA$(NF) = ""  THEN 510
  48. 450 AA$(NF) =  MID$ (AA$(NF),2,16):NF = NF +1: GOTO 440
  49. 460  REM    * READ DIRECTORY OF SOURCE DISC
  50. 470 B$(NF) = "  ": INPUT A$(NF): IF A$(NF) = ""  THEN 510
  51. 480  IF  MID$ (A$(NF),18,3) < >"BIN"  THEN 470
  52. 490 A$(NF) =  MID$ (A$(NF),2,16):NF = NF +1: GOTO 470
  53. 510  PRINT D$"CLOSE": VTAB 1: HTAB 1
  54. 520  IF N = 3  THEN NN = NF -1: PRINT M$"Destination Volume Catalog": GOTO 550
  55. 530 NM = NF -1: PRINT M$"Use Arrow Keys to Select/Deselect Files"
  56. 540  REM    * PRINT FILE LIST
  57. 550  PRINT M$"Volume: "P$M$: PRINT BLOCKS;" blocks free"
  58. 560  FOR J = 1 TO 79: PRINT "_";: NEXT : IF NM *(N = 4) +NN *(N = 3) = 0  THEN  PRINT M$"No Files ";: GET KE$: GOTO 100
  59. 570  FOR NF = 1 TO NM *(N = 4) +NN *(N = 3)
  60. 580  GOSUB 720: NEXT 
  61. 590  IF N = 3  THEN  HTAB 79: GET KE$: GOTO 100: REM    * RETURN TO MAIN MENU
  62. 600  REM    * SELECT/DESECT FILES
  63. 610 NF = 1
  64. 620  INVERSE : GOSUB 720: GET KE$
  65. 630  IF KE$ = ESC$  OR KE$ = M$  THEN  NORMAL : GOTO 100
  66. 640  IF KE$ = U$  THEN B$(NF) = "=>"
  67. 650  IF KE$ = H$  THEN B$(NF) = "  "
  68. 660  IF KE$ = "A"  OR KE$ = "a"  THEN  NORMAL : FOR NF = 1 TO NM:B$(NF) = "=>": GOSUB 720: NEXT NF: GOTO 610: REM    * SELECT ALL
  69. 670  IF KE$ = "N"  OR KE$ = "n"  THEN  NORMAL : FOR NF = 1 TO NM:B$(NF) = "  ": GOSUB 720: NEXT NF: GOTO 610: REM    * SELECT NONE
  70. 680  NORMAL : GOSUB 720:NF = NF +(KE$ = J$) -(KE$ = K$)
  71. 690  IF NF = 0  THEN NF = NM
  72. 700  IF NF >NM  THEN NF = 1
  73. 710  GOTO 620
  74. 720 Q = (NF >13) +(NF >26) +(NF >39)
  75. 730 ROW = 8 +NF -13 *Q
  76. 740 COLUMN = 2 +19 *Q
  77. 750  VTAB ROW: HTAB COLUMN: IF N = 4  THEN  PRINT B$(NF) +A$(NF);: RETURN 
  78. 760  PRINT "  " +AA$(NF): RETURN 
  79. 770  REM    * CONVERT FILES
  80. 780 LM = 41:WI = 38: GOSUB 1080: HOME : FOR NF = 1 TO NM: IF B$(NF) = "=>"  THEN 800
  81. 790  NEXT : PRINT "No Files Selected  "G$;: GET KE$: GOTO 190
  82. 800  PRINT "Clip Conversions"M$:TM = 2:BM = 23: GOSUB 1060
  83. 810  FOR NF = 1 TO NM: IF B$(NF) < >"=>"  THEN 910
  84. 820  PRINT A$(NF);:L = 1: IF  PEEK( -16384) = 155  THEN 920: REM    * ESCAPE TO MENU
  85. 830  IF  MID$ (A$(NF),L,1) < >" "  THEN L = L +1: GOTO 830: REM    * REMOVE SPACES
  86. 840 SF$ =  LEFT$(A$(NF),L -1):DF$ =  LEFT$(SF$,10) +".CLIP": REM    * APPEND "CLIP" TO FILE NAME
  87. 850  IF DC$ = "YES"  THEN MSG$ = "Insert Source Disc": GOSUB 940
  88. 860  POKE  -16368,0: PRINT D$"BLOAD"SF$",A$4400,L576"SD$: CALL CNVRT: IF  PEEK( -16384) = 155  THEN 920
  89. 870  IF DC$ = "YES"  THEN MSG$ = "Insert Destin Disc": GOSUB 940
  90. 880  PRINT "=> "DF$
  91. 890  PRINT D$"BSAVE"DF$",A$4000,L842"DD$:B$(NF) = "  ": REM    * SAVE CLIP AND MARK AS SAVED
  92. 900  IF DL$ = "YES"  THEN  PRINT D$"DELETE"SF$SD$
  93. 910  NEXT NF
  94. 920  GOSUB 1050: GOSUB 1070: GOTO 190
  95. 930  REM    * ERASE MESSAGE AND RESTORE CURSOR POSITION
  96. 940  INVERSE : PRINT MSG$;: NORMAL : GET KE$: PRINT H18$; SPC( 18);H18$;: IF KE$ = ESC$  THEN  POP : GOTO 920
  97. 950  RETURN 
  98. 960  REM    * TOGGLE DELETE FLAG
  99. 970 X$ = DL$: GOSUB 1000:DL$ = X$: GOTO 190
  100. 980  REM    * TOGGLE WAIT FOR DISC CHANGE FLAG
  101. 990 X$ = DC$: GOSUB 1000:DC$ = X$: GOTO 190
  102. 1000  IF X$ = "NO "  THEN X$ = "YES": GOTO 1020
  103. 1010 X$ = "NO "
  104. 1020 MENU$(N) =  LEFT$(MENU$(N),26) +X$: RETURN : REM    * APPEND YES/NO TO MENU ITEM
  105. 1030  REM     * SET TEXT WINDOW
  106. 1040 TM = 22:BM = 23: GOTO 1060
  107. 1050 TM = 0:BM = 23
  108. 1060  POKE 34,TM: POKE 35,BM: RETURN : REM     * SET VERTICAL
  109. 1070 LM = 0:WI = 35
  110. 1080  POKE 32,LM: POKE 33,WI: RETURN : REM     * SET HORIZONTAL
  111. 1090  REM     * QUIT
  112. 1100  GOSUB 330: PRINT "Sure you want to quit ? ";: GET KE$: IF KE$ = "Y"  OR KE$ = "y"  THEN WI = 79: GOSUB 1080: HOME : END 
  113. 1110  IF KE$ < >"N"  AND KE$ < >"n"  THEN 1100
  114. 1120  GOSUB 330: GOTO 190
  115. 1130  DATA     "1: SOURCE DRIVE:","2: DESTINATION DRIVE:","3: CATALOG DESTINATION VOLUME","4: SELECT FILES","5: CONVERT FILES: ","6: DELETE ORIGINAL FILES: NO","7: PAUSE FOR DISC CHANGE: NO","8: QUIT TO BASIC"
  116. 1140  REM     * ERROR HANDLING ROUTINE
  117. 1150 ER =  PEEK(222): IF ER = 5  THEN 510
  118. 1160 MSG$ = "   *  ANY KEY TO CONTINUE ": IF ER = 3  THEN MSG$ = "   *  NO DEVICE CONNECTED "
  119. 1170  IF ER = 4  THEN MSG$ = "   *  WRITE PROTECTED     "
  120. 1180  IF ER = 8  THEN MSG$ = "   *  I/O ERROR           "
  121. 1190  IF ER = 9  THEN MSG$ = "   *  DISK FULL           "
  122. 1200  IF ER = 10  THEN MSG$ = "   *  FILE LOCKED         "
  123. 1210  IF ER = 17  THEN MSG$ = "   *  DIRECTORY FULL      "
  124. 1220  GOSUB 1040: GOSUB 1070: GOSUB 330: VTAB 22: HTAB 1: PRINT G$MSG$;: GET KE$: GOSUB 330: GOTO 110